Adjusting movement of a display screen to compensate for changes in speed of movement across the display screen

ABSTRACT

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, that move a display screen to produce sound or haptic feedback. A first force that causes a first movement of a first portion of a display screen is applied by a first transducer that is mechanically coupled to the first portion of the display screen. A movement of a second portion of the display screen is detected by a second transducer that is mechanically coupled to the second portion. A relationship between the first movement caused at the first portion of the display screen by the first transducer and the movement detected at the second portion of the display screen by the second transducer is determined. A second force that causes a second movement of the first portion of the display screen is applied by the first transducer, the second force being determined using the determined relationship.

BACKGROUND

Electronic devices may provide output to users in the form of audio orhaptic feedback. More specifically, a transducer included in a consumerelectronic device can move at least a portion of the consumer electronicdevice to produce the audio or haptic feedback.

SUMMARY

This document describes techniques, methods, systems, and othermechanisms that move a display screen to produce sound or hapticfeedback. For example, a mobile computing device may be configured tovibrate a display screen of the mobile computing device at differentfrequencies and different intensities to produce sound at differentfrequencies and different intensities.

Such a display screen may be moved by the application of an input (e.g.,an electrical signal) to a transducer attached to a portion of thedisplay screen. The transducer may convert the input into force thatcauses movement at the portion of the display screen. In such aconfiguration, the movement at the portion of the display screen canthen spread across the rest of the display screen. For example, movementat the top half of the display screen, caused by force from thetransducer, may spread to the bottom half of the display screen.

However, changes to the spread of movement across the display screen maychange the sound or haptic feedback perceived by a user. For example, areduction in the spread of vibrations across a display screen may reducethe intensity of sound produced by the display screen.

The spread of movement across a display screen may change for a numberof reasons. For example, a crack formed in the display screen may reducethe spread of vibrations across the portions of the display screenseparated by the crack. In another example, a screen protector attachedto the display screen may dampen the spread of vibrations across thedisplay screen. In yet another example, a case for a mobile computingdevice that touches the edges of the display screen of the mobilecomputing device may dampen the spread of vibrations near the edges ofthe display screen.

To account for changes in the spread of movement across a displayscreen, a mobile computing device may be configured to adjust forcesapplied to a portion of the display screen. For example, in someembodiments of the disclosed technology, the mobile computing device maybe configured to double a force applied by a transducer to a portion ofthe display screen to compensate for a reduction in the spread ofmovement across the display screen.

in some embodiments, the mobile computing device may be configured tocompensate for such changes to the spread of movement across the displayscreen by determining a relationship between movement caused at a firstportion of the display screen and movement detected at a second portionof the display screen and then applying force to the first portion ofthe display screen based on the determined relationship.

For example, a mobile computing device may determine that the amplitudeof movement of a first portion of a display screen resulted in only halfthe expected amplitude of movement at a second portion of the displayscreen and, in response, apply double the amount of force to the firstportion of the display screen. In another example, the mobile computingdevice may determine that a frequency of movement at a first portion ofa display screen resulted in a different frequency than that expected ata second portion of the display screen and, in response, apply force tothe first portion of the display screen at a different frequency.

Particular embodiments of the disclosed technology can, in certaininstances, provide more consistent audio or haptic feedback to a userthrough movement of a display screen even when the spread of movementacross the display screen has changed (e.g., due to the display screenhaving cracked, a screen protector being applied to the display screen,or a case for the mobile computing device coming into contact with thedisplay screen).

One innovative aspect of the subject matter described in thisspecification is embodied in methods that include the actions ofapplying, by a first transducer that is mechanically coupled to a firstportion of a display screen of a mobile computing device, a first forcethat causes a first movement of the first portion of the display screen,detecting, by a second transducer that is mechanically coupled to asecond portion of the display screen, movement of the second portion ofthe display screen, the second portion of the display screen beingdifferent than the first portion of the display screen, determining arelationship between the first movement caused at the first portion ofthe display screen by the first transducer and the movement detected atthe second portion of the display screen by the second transducer, andapplying, by the first transducer, a second force that causes a secondmovement of the first portion of the display screen, the second forcebeing determined by a computing system of the mobile computing deviceusing the determined relationship between the first movement caused atthe first portion of the display screen by the first transducer and themovement detected at the second portion of the display screen by thesecond transducer.

Other embodiments of this aspect include corresponding computer systems,apparatus, and computer programs recorded on one or more computerstorage devices, each configured to perform the actions of the methods.A system of one or more computers can be configured to performparticular operations or actions by virtue of having software, firmware,hardware, or a combination of them installed on the system that inoperation causes or cause the system to perform the actions. One or morecomputer programs can be configured to perform particular operations oractions by virtue of including instructions that, when executed by dataprocessing apparatus, cause the apparatus to perform the actions.

The foregoing and other embodiments can each optionally include one ormore of the following features, alone or in combination. For instance,the first transducer may include a first piezoelectric element that ismechanically coupled to the first portion of the display screen and thesecond transducer may include a second piezoelectric element that ismechanically coupled to the second portion of the display screen.Applying, by a first transducer that is mechanically coupled to a firstportion of a display screen of a mobile computing device, a first forcethat causes a first movement of the first portion of the display screenmay include applying a first force that causes the display screen tovibrate at a particular frequency and a particular amplitude.

Determining a relationship between the first movement caused at thefirst portion of the display screen by the first transducer and themovement detected at the second portion of the display screen by thesecond transducer may include determining a transfer function thatdescribes a transfer of movement from the first portion of the displayscreen to the second portion of the display screen. Determining thetransfer function that describes the transfer of movement from the firstportion of the display screen to the second portion of the displayscreen may include determining a transfer function that describes anexpected amplitude, frequency, and phase of movement at the secondportion in response to a given amplitude, frequency, and phase ofmovement at the first portion. Applying, by the first transducer, asecond force that causes a second movement of the first portion of thedisplay screen, the second force being determined by a computing systemof the mobile computing device using the determined relationship betweenthe first movement caused at the first portion of the display screen bythe first transducer and the movement detected at the second portion ofthe display screen by the second transducer may include obtaining areference transfer function that describes a transfer of movement from afirst portion of a reference display screen to a second portion of thereference display screen, determining a compensation function thatcompensates for a difference between the transfer function and thereference function, and applying the second force based at least on thecompensation function.

Applying the second force based at least on the compensation functionmay include obtaining a movement signal, generating a compensatedmovement signal from the movement signal in accordance with thecompensation function, and applying the second force in accordance withthe compensated movement signal. Actions may include obtaining thereference transfer function before applying the first force. Actions mayinclude determining to provide a perceivable output to a user of themobile computing device through the first transducer, where applying thefirst force that causes a first movement of the first portion of thedisplay screen is in response to determining to provide the perceivableoutput to the user of the mobile computing device through the firsttransducer. Determining a relationship between the first movement causedat the first portion of the display screen by the first transducer andthe movement detected at the second portion of the display screen by thesecond transducer may include determining a relationship between anelectric signal input to the first transducer and an electric signalgenerated by the second transducer.

Details of one or more implementations are set forth in the accompanyingdrawings and the description below. Other features, objects, andadvantages will be apparent from the description and drawings, and fromthe claims.

DESCRIPTION OF DRAWINGS

FIGS. 1A-1C are conceptual diagrams of a system that modifies movementof a display screen to compensate for changes in spread of movementacross the display screen.

FIG. 2 is a block diagram of a compensation unit that modifies movementof a display screen to compensate for changes in the spread of movementacross the display screen.

FIG. 3 is a flow diagram that illustrates an example of a process thatmodifies movement of a display screen to compensate for changes in thespread of movement across the display screen.

FIG. 4 is a conceptual diagram of a determination of a multi-frequencytransfer function and an application of that transfer function to asignal.

FIG. 5 is a conceptual diagram of a system that may be used to implementthe systems and methods described in this document.

FIG. 6 is a block diagram of computing devices that may be used toimplement the systems and methods described in this document, as eithera client or as a server or plurality of servers.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

FIGS. 1A-1C are conceptual diagrams of systems 100A, 100B, 100C thatadjust (e.g., compensate) movement of a display screen 130 to compensatefor changes in the spread of movement across the display screen 130.FIG. 1A illustrates how the system 100A operates before the displayscreen 130 is cracked. FIG. 1B illustrates how the system 100B operatesafter the display screen 130 is cracked and before movement of thedisplay screen 130 is compensated for the crack. FIG. 1C illustrates howthe system 100C operates after movement of the display screen 130 iscompensated for the crack in the display screen 130.

In more detail, FIGS. 1A-1C illustrate a mobile computing device 102that includes a first transducer 110, a second transducer 120, thedisplay screen 130, and a compensation unit 140. The first transducer110 is mechanically coupled to the display screen 130 at a first portionof the display screen and may move the first portion of the displayscreen. For example, the first transducer 110 may be attached to theinterior side of a top of the display screen 130 and movement of thefirst transducer 110 may directly cause force to be applied to the topof the display screen 130, and the force may move the top of the displayscreen 130.

The second transducer 120 is mechanically coupled to the display screen130 at a second portion of the display screen 130 and may detectmovement of the display screen 130 at the second portion that is causedby movement of the first portion of the display screen. For example, thesecond transducer 120 may be attached to the interior side of a bottomof the display screen 130 and movement of the second portion of thedisplay screen may move the second transducer 120.

The compensation unit 140 provides a movement signal to the firsttransducer 110 and receives a sensed movement signal from the secondtransducer 120. The movement signal may be an electronic signal thatdrives the first transducer 110 to move the first portion of the displayscreen 130 and the sensed movement signal may be an electronic signalgenerated by the second transducer 120 in response to movement of thesecond portion of the display screen 130.

FIG. 1A illustrates how the system 100A operates before the displayscreen 130 is cracked. The compensation unit 140 provides a movementsignal of 1V (Volts) at 1 kHz (kiloHertz) to the first transducer 110.The voltage of the movement signal may correspond to amplitude ofmovement and the frequency of the movement signal may correspond tofrequency of movement.

The first transducer 110 then moves the first portion of the displayscreen 130 in accordance with the movement signal and the movement ofthe display screen 130 produces a sound at 80 dB (decibels). In thismanner the electrical signal provided to the transducer is convertedinto mechanical movement of the display screen 130 and then the air. Thesecond transducer 120 then detects the movement of the display screen130 at the second portion and provides a sensed movement signal of 0.9Vat 1 kHz. In this manner the mechanical movement of the display screen130 is converted into an electrical signal.

FIG. 1B illustrates how the system 100B operates after the displayscreen 130 is cracked and before movement of the display screen 130 iscompensated for the crack. The crack in the display screen 130 may bebetween the first portion and second portion of the display screen 130so that it reduces the transfer of movement from the first portion tothe second portion, or in other words, reduces the spread of movementfrom the first portion to the second portion.

The compensation unit 140 provides a movement signal of 1V at 1 kHz tothe first transducer 110. The first transducer 110 then moves the firstportion of the display screen 130 in accordance with the movement signaland the movement of the display screen 130 produces a sound at 70 dB.The second transducer 120 detects movement of the display screen 130 atthe second portion and provides a sensed movement signal of 0.6V at 1kHz, which corresponds to a reduced movement of the second portion dueto the reduced transfer of movement.

FIG. 1C illustrates how the system 100C operates after movement of thedisplay screen 130 is compensated for the crack in the display screen130. The compensation unit 140 may compensate for the crack in thedisplay screen 130 by increasing the voltage of a movement signal to thefirst transducer 110 from 1V at 1 kHz to 1.5V at 1 kHz.

The first transducer 110 then moves the first portion of the displayscreen 130 at a greater amplitude in accordance with the movement signaland the movement of the display screen 130 produces a sound at 80 dB,the original level before the display screen 130 was cracked. The secondtransducer 120 detects movement of the display screen 130 at the secondportion and provides a sensed movement signal of 0.9V at 1 kHz, whichcorresponds to the movement of the second portion before the displayscreen 130 was cracked.

While movement of the display screen 130 is primarily described hereinto produce sound, the compensation unit 140 may similarly compensatemovement of a display screen 130 for changes in the spread of movementacross the display screen to produce more consistent haptic feedback.For example, the movement signal provided to the first transducer 110may have greater amplitudes and lower frequencies when the displayscreen 130 is being used to provide haptic feedback.

Additionally or alternatively, while the first transducer 110 isdescribed as moving the display screen 130 and the second transducer 120is described as detecting movement of the display screen 130, the rolesof the first transducer 110 and second transducer 120 may be reversed.For example, the second transducer 120 may move the display screen 130and the first transducer 110 may detect movement of the display screen130.

FIG. 2 is a block diagram 200 of a compensation unit 202 that adjusts(e.g., compensates) movement of a display screen to compensate forchanges in the spread of movement across the display screen. Thecompensation unit 202 includes a characteristic determinator 210 thatdetermines a current mechanical characteristic 216 exhibited by thedisplay screen, a compensation determinator 220 that determines acompensation characteristic 224, and a compensation engine 230 thatcompensates movement using the compensation characteristic 224. In someimplementations, the compensation unit 202 may be the compensation unit140 of FIGS. 1A-1C.

The characteristic determinator 210 obtains a movement test signal 212.The movement test signal 212 may be an electric signal that is providedto a first transducer to drive the first transducer to move a firstportion of the display screen as part of determining whether tocompensate movement. For example, the movement test signal 212 may be anelectric signal that is 1V at 1 kHz that causes the display screen toproduce sound that is inaudible to a user.

The movement test signal 212 may have been previously used to drive adisplay screen to determine a reference characteristic 222 of thedisplay screen. The reference characteristic 222 of the display screenmay describe a mechanical characteristic that a reference display screenexhibits. For example, the reference characteristic 222 may describethat a display screen of an undamaged and unmodified mobile computingdevice transfers 90% of the amplitude of movement at a first portion ofthe display screen to a second portion of the display screen when afirst transducer is driven with the movement test signal 212. In someexamples, the reference characteristic is pre-stored on the computingdevice at a time of manufacturing, as an expected referencecharacteristic of the computing device (and other computing devices of asame or similar type).

The characteristic determinator 210 also obtains a sensed test signal214. The sensed test signal 214 may be an electric signal generated by asecond transducer from movement of the display screen at a secondportion caused by movement of a first portion of the display screencaused by the first transducer being driven with the movement testsignal.

The characteristic determinator 210 then determines a current mechanicalcharacteristic 216 exhibited by the display screen using the movementtest signal 212 and the sensed test signal 214. The current mechanicalcharacteristic 216 may reflect the transfer of movement across thedisplay screen that is currently exhibited by the display screen.

For example, the characteristic determinator 210 may determine thecurrent mechanical characteristic 216 exhibited by the display screen isthat movement at the first portion of the display screen is transferredto the second portion of the display screen with 80% amplitude bycomparing a movement test signal 212 with 1V and a sensed test signal of0.8V. In another example, the characteristic determinator 210 maydetermine that movement at the first portion of the display screen maytransfer to the second portion of the display screen with 50% amplitudeand a phase shift of 90°.

The compensation determinator 220 may obtain the current mechanicalcharacteristic 216 exhibited by the display screen from thecharacteristic determinator 210 and obtain the reference characteristic222 exhibited by the display screen to determine a compensationcharacteristic 224. The compensation characteristic 224 may describe howa movement signal that drives a first transducer may be modified so thatthe sound produced by movement of the display screen while the displayscreen exhibits the current mechanical characteristic 216 is moresimilar to sound produced by movement of the display screen with themovement signal while the display screen exhibits the referencemechanical characteristic.

For example, the compensation determinator 220 may obtain a currentmechanical characteristic 216 that reflects a transfer of movement of80% amplitude from a first portion of the display screen to a secondportion of the display screen, a reference characteristic 222 thatreflects a transfer of movement of 90% amplitude from a first portion ofthe display screen to a second portion of the display screen, anddetermine a compensation characteristic of increasing amplitude of amovement signal by 12% (e.g., overall or at the specific frequency atwhich the amplitude decreased).

The compensation engine 230 may obtain the compensation characteristic224, from the compensation determinator 220, obtain a movement signal232 to drive a first transducer to produce sound audible to a user, andprovide a compensated signal 234 for the first transducer. Thecompensated signal 234 may be an electric signal provided to the firsttransducer for the display screen to produce a sound that is similar toa sound produced by the display screen when the first transducer wasdriven using the movement signal 232 while exhibiting the referencecharacteristic 222.

FIG. 3 is a flow diagram that illustrates an example of a process 300that compensates movement of a display screen for changes in the spreadof movement across the display screen. The operations of the process 400may be performed by one or more computing systems, such as the mobilecomputing device 102 of FIGS. 1A-1C and the compensation unit 202 ofFIG. 2.

The process 300 includes applying force that causes a first movement ofa screen of a mobile computing device (310). For example, thecompensation unit 140 may provide a movement test signal to the firsttransducer 110 and the first transducer 110 may then move a firstportion of the display screen 130 in accordance with the movement testsignal. The first transducer may be a piezoelectric transducer or someother device that converts an electrical signal to movement. Forexample, the first transducer may convert an electrical charge intophysical movement.

The force applied by the first transducer 110 may cause the displayscreen to vibrate at a particular frequency and a particular amplitude.For example, the first transducer 110 may receive a movement test signalof 0.5V at 500 Hz and in response, apply a force that vibrates a firstportion of the display screen 130 with an amplitude of 0.5V and afrequency of 500 Hz.

The process 300 includes detecting movement of a second portion thescreen (320). For example, the second transducer 120 may generate asensed movement signal of 0.25V at 500 Hz in response to vibrations at asecond portion of the display screen 130, with those vibrations havingbeen caused by vibration of the first portion of the display screen 130by the first transducer 110. The second transducer may be apiezoelectric transducer. For example, the second transducer may convertphysical movement into an electric charge.

The process 300 includes determining a relationship between the firstmovement and the detected movement. (330). For example, the compensationunit 140 or characteristic determinator 210 may obtain a movement testsignal of 0.5V at 500 Hz and a sensed test signal of 0.25V at 500 Hz anddetermine that 50% of amplitude of movement at 500 Hz at the firstportion of the display screen 130 is transferred to the second portionof the display screen 130.

Determining a relationship between the first movement caused at thefirst portion of the display screen by the first transducer and themovement detected at the second portion of the display screen by thesecond transducer may include determining a relationship between anelectric signal input to the first transducer and an electric signalgenerated by the second transducer. For example, a processor of a mobilecomputing device may determine that an electric signal of 0.5V at 500 Hzwas input to the first transducer 110 and that an electric signal of0.25V at 500 Hz was generated by the second transducer 120.

Determining a relationship between the first movement caused at thefirst portion of the display screen by the first transducer and themovement detected at the second portion of the display screen by thesecond transducer may include determining a transfer function thatdescribes a transfer of movement at the first portion of the displayscreen to the second portion of the display screen. For example, thecompensation unit 140 or characteristic determinator 210 may obtainmultiple movement test signals, at one or more of different amplitudesand one or more different frequencies, and obtain multiple sensed testsignals generated by the second transducer 120 in response to the firsttransducer 110 being driven with the multiple movement test signals, andfrom the multiple test signals and multiple sensed test signals,determine a transfer function that describes a sensed test signal as afunction of a movement test signal.

The transfer function may describe an expected amplitude, frequency, andphase of movement at the second portion in response to a givenamplitude, frequency, and phase of movement at the first portion. Forexample, the transfer function may describe that an expected amplitudeof movement at a second portion of the display screen 130 is 75% of theamplitude of movement at a first portion of the display screen 130, anexpected frequency of movement at the second portion of the displayscreen 130 is the same as the frequency of movement at the first portionof the display screen 130, and an expected phase of movement at thesecond portion of the display screen 130 is 90° of a phase of movementat the first portion of the display screen 130.

The process 300 includes applying, using the determined relationship, asecond force that causes a second movement of the display screen (340).For example, the compensation unit 140 or compensation engine 230 mayuse a determined relationship of only 50% of movement transferring froma first portion of a display screen to a second portion of a displayscreen instead of 75% of movement transferring to determine to increasean amplitude of movement signals to the first transducer 110 by 50%which may increase the second force by 50%.

Applying a second force that causes a second movement of the displayscreen by using the determined relationship may include obtaining areference transfer function that describes a transfer of movement at afirst portion of a reference display screen to a second portion of thereference display screen, determining a compensation function thatcompensates for a difference between the transfer function and thereference function, and moving the display screen with the firsttransducer based at least on the compensation function.

For example, the compensation unit 140 may obtain a reference transferfunction of 75%, a current transfer function of 50%, determine acompensation function of increasing amplitude by 50%, and increaseamplitude of movement signals to the first transducer by 50%.

Applying the second force based at least on the compensation functionmay include obtaining a movement signal, generating a compensatedmovement signal from the movement signal in accordance with thecompensation function, and moving the display screen with the transducerin accordance with the compensated movement signal. For example, thecompensation unit 140 or compensation engine 230 may obtain a movementsignal of 5V at 500 Hz, generating a compensated movement signal of 7.5Vat 500 Hz by increasing the amplitude of the 5V at 500 Hz movementsignal by a compensation function of increasing amplitude by 50%, andmoving the display screen with the first transducer 110 using thecompensated movement signal of 7.5V at 500 Hz.

The process 300 may include obtaining the reference transfer functionbefore applying the first force. For example, the compensation unit 140may obtain the reference transfer function by determining mechanicalcharacteristics exhibited by the display screen 130 when the mobilecomputing device 102 is tested at a manufacturing factory before beingsold. In another example, the compensation unit 140 may obtain thereference transfer function from a server before moving the displayscreen to produce a sound audible to a user.

The process 300 may be performed in response to determining to provide aperceivable output to a user of the mobile computing device through thefirst transducer and, in response to determining to provide aperceivable output to a user of the mobile computing device through thefirst transducer, applying the first force that causes a first movementof the first portion of the display screen is in response to determiningto provide the perceivable output to the user of the mobile computingdevice through the first transducer. For example, compensation unit 140may detect a movement signal of 2V at 4 kHz is to be provided to thefirst transducer 110 to produce a sound audible to a user and, inresponse, provide a movement test signal of 1V at 250 Hz to the firsttransducer that would not produce a sound audible to a user, determine acompensation characteristic of increasing an amplitude by 100% from themovement test signal, generate a compensated movement signal of 4V at 4Khz from the movement signal of 2V at 4 kHz and compensationcharacteristic of increasing an amplitude by 100%, and provide thecompensated movement signal to the first transducer 110 instead ofproviding the movement.

The process 300 may be performed each time before providing aperceivable output to a user of the mobile computing device through thefirst transducer. Additionally or alternatively, the process 300 may beperformed at period intervals, e.g., every hour, every day, every week,etc. The determination of the mechanical characteristics exhibited bythe display screen may be performed during sound or haptic outputprovided in response to a typical request (e.g., a vibration of thescreen in response to a user pressing the screen).

In some implementations, the compensation unit 140 or compensationengine 230 may not compensate movement test signals. For example, thecompensation unit 140 may compensate movement signals intended toproduce output perceivable to a user by increasing amplitudes ofmovement signals by 100% but not increase amplitudes of movement testsignals that are not intended to produce output perceivable to the userand used to determine whether to compensate movement signals intended toproduce output perceivable to a user.

The process 300 may include determining whether a difference between themechanical characteristic and a reference mechanical characteristicsatisfies a threshold and, in response to determining whether adifference between the mechanical characteristic and a referencemechanical characteristic satisfies a threshold, providing an indicationor an alert that the display screen is damaged. For example, thecompensation unit 140 may determine that an amplitude increase isgreater than a 150% threshold of and, in response, provide a visualindication on the display screen that includes the text “Warning, yourscreen is heavily damaged and sound production may be inaccurate.Replacing your screen is recommended.” An audible indication may also beprovided. In other examples, an indication may be provided to anothercomputing system for storage.

FIG. 4 is a conceptual diagram of a determination of a multi-frequencytransfer function and an application of that transfer function to asignal. This example represents how the technologies described in thisdocument may be used to compensate for complex deviations in a signal(e.g., a haptic feedback being distorted in multiple frequencies due thepresence of cracks and/or a case and/or a screen protector).

In this example, the frequency components of a signal provided to oroutput by an output transducer (e.g., first transducer 110) isrepresented by output frequency spectrum 410. The signal represented at410 is a white noise signal that has the same amplitude across a widerange of frequencies. In other examples, the signal is an impulse signalor a signal that performs a frequency sweep, or some other signal ofknown characteristics at known frequencies. This signal is distortedacross multiple frequencies in different manners, as illustrated by thesensed frequency spectrum 420, which represents the frequency componentsof a signal sensed by an input transducer (e.g., second transducer 120).

As shown in this illustration, some frequencies are sensed at anincreased amplitude and some frequencies are sensed at a decreasedamplitude. Using the output frequency spectrum 410 and the sensedfrequency spectrum 420, a computing system may determine the transferfunction 450. The transfer function 440 may include a mathematicalrepresentation of a manner in which to modify a signal. In this case, itis a mathematical representation of a manner in which to modify a signalin an attempt to neutralize properties of a computing device that causedthe output signal to result in a different sensed signal. Outputfrequency spectrum 430 and sensed frequency spectrum 440 illustrate howan input signal can be modified by a transfer function to compensate fordistortions in multiple frequencies. While FIG. 4 illustrates the outputfrequency spectrum 430 appearing similar to the white noise signalprovided in output frequency spectrum 410, once the transfer function450 is determined using the output frequency spectrum 410 the outputfrequency spectrum 430 may be a different signal. For example, outputfrequency spectrum 410 may be a white noise signal that is provided forcalibration purposes and output frequency spectrum 430 may be a latersignal that is calibrated using the transfer function 450 to producesound as originally intended to be heard by a user.

The diagram of FIG. 4 is a simplified example of the technologiesdiscussed in this disclosure in some respects. For example, the diagramdoes not account for reference transfer functions. For example, it maybe that a sensed signal is distorted due to the structuralcharacteristics of computing device that is not damaged or modified inany way. As such, the multi-frequency examples presented in FIG. 4 wouldalso apply to circumstances in which a sensed frequency spectrum wascompared to a reference frequency spectrum, or the determined transferfunction 450 was compared to a reference transfer function. Still, it isreasonable to adjust a signal output by a transducer using a transferfunction (e.g., transfer function 450) to attempt to neutralize thestructural characteristics of a computing device, whether or not therehas been damage or modifications made to the computing device. Asdiscussed throughout this disclosure, the modifications to the inputsignal may also include phase modifications.

In some examples, the computing device may include a single transducerthat performs the operations described herein using a single transducer.For example, the computing device may send a signal to a transducer tocause that transducer to vibrate a component of the computing device(e.g., the display screen or a component connected to the display screendirectly or through one or more intervening components). The computingdevice may be able to analyze performance of the transducer to determinehow the transducer actually vibrates the component of the computingdevice. For example, the same 1V, 1 kHz signal may result in differentreflected frequencies at the location of the transducer based on variouscharacteristics of the computing device, such as whether the displayscreen is cracked and whether the computing device is enclosed in acase. As such, the transducer may serve as both an output device and asensing device.

In some examples the transducer concurrently outputs a signal and sensesthe characteristics of that output signal and how it may be affected bythe physical properties of the computing device. In some examples, thecomputing device can monitor the characteristics of the output signal bymonitoring how the impedance of the output signal changes or does notchange. In some examples, the computing device alternates between a modein which it outputs a signal and a mode in which it senses reflectivevibrations that were caused by the output signal. In this manner, thecomputing device may use a single transducer to output a signal andsense physical characteristics of the computing device.

In some implementations, the computing device may include multipletransducers outputting signals at a same time and a single transducersensing the output signals, and the computing device may generatetransfer functions for the multiple transducers based on the sensedsignals. In some examples, the computing device may include a singletransducer outputting a signal and multiple transducers sensing theoutput signal, and the computing device may generate a transfer functionfor the single transducer using the multiple transducers sensing theoutput signal. In some examples, the computing device may includemultiple output transducers outputting multiple signals and multiplesensing transducers sensing the multiple signals, and the computingdevice may generate multiple transfer functions for the multiple outputtransducers using the multiple sensing transducers to sense the multiplesignals.

Referring now to FIG. 5, a conceptual diagram of a system that may beused to implement the systems and methods described in this document isillustrated. In the system, mobile computing device 510 can wirelesslycommunicate with base station 540, which can provide the mobilecomputing device wireless access to numerous hosted services 560 througha network 550.

In this illustration, the mobile computing device 510 is depicted as ahandheld mobile telephone (e.g., a smartphone, or an applicationtelephone) that includes a touchscreen display device 512 for presentingcontent to a user of the mobile computing device 510 and receivingtouch-based user inputs. Other visual, tactile, and auditory outputcomponents may also be provided (e.g., LED lights, a vibrating mechanismfor tactile output, or a speaker for providing tonal, voice-generated,or recorded output), as may various different input components (e.g.,keyboard 514, physical buttons, trackballs, accelerometers, gyroscopes,and magnetometers).

Example visual output mechanism in the form of display device 512 maytake the form of a display with resistive or capacitive touchcapabilities. The display device may be for displaying video, graphics,images, and text, and for coordinating user touch input locations withthe location of displayed information so that the device 510 canassociate user contact at a location of a displayed item with the item.The mobile computing device 510 may also take alternative forms,including as a laptop computer, a tablet or slate computer, a personaldigital assistant, an embedded system (e.g., a car navigation system), adesktop personal computer, or a computerized workstation.

An example mechanism for receiving user-input includes keyboard 514,which may be a full qwerty keyboard or a traditional keypad thatincludes keys for the digits ‘0-9’, ‘*’, and ‘#.’ The keyboard 514receives input when a user physically contacts or depresses a keyboardkey. User manipulation of a trackball 516 or interaction with a trackpad enables the user to supply directional and rate of movementinformation to the mobile computing device 510 (e.g., to manipulate aposition of a cursor on the display device 512).

The mobile computing device 510 may be able to determine a position ofphysical contact with the touchscreen display device 512 (e.g., aposition of contact by a finger or a stylus). Using the touchscreen 512,various “virtual” input mechanisms may be produced, where a userinteracts with a graphical user interface element depicted on thetouchscreen 512 by contacting the graphical user interface element. Anexample of a “virtual” input mechanism is a “software keyboard,” where akeyboard is displayed on the touchscreen and a user selects keys bypressing a region of the touchscreen 512 that corresponds to each key.

The mobile computing device 510 may include mechanical or touchsensitive buttons 518 a-d. Additionally, the mobile computing device mayinclude buttons for adjusting volume output by the one or more speakers520, and a button for turning the mobile computing device on or off. Amicrophone 522 allows the mobile computing device 510 to convert audiblesounds into an electrical signal that may be digitally encoded andstored in computer-readable memory, or transmitted to another computingdevice. The mobile computing device 510 may also include a digitalcompass, an accelerometer, proximity sensors, and ambient light sensors.

An operating system may provide an interface between the mobilecomputing device's hardware (e.g., the input/output mechanisms and aprocessor executing instructions retrieved from computer-readablemedium) and software. Example operating systems include ANDROID, CHROME,IOS, MAC OS X, WINDOWS 7, WINDOWS PHONE 7, SYMBIAN, BLACKBERRY, WEBOS, avariety of UNIX operating systems; or a proprietary operating system forcomputerized devices. The operating system may provide a platform forthe execution of application programs that facilitate interactionbetween the computing device and a user.

The mobile computing device 510 may present a graphical user interfacewith the touchscreen 512. A graphical user interface is a collection ofone or more graphical interface elements and may be static (e.g., thedisplay appears to remain the same over a period of time), or may bedynamic (e.g., the graphical user interface includes graphical interfaceelements that animate without user input).

A graphical interface element may be text, lines, shapes, images, orcombinations thereof. For example, a graphical interface element may bean icon that is displayed on the desktop and the icon's associated text.In some examples, a graphical interface element is selectable withuser-input. For example, a user may select a graphical interface elementby pressing a region of the touchscreen that corresponds to a display ofthe graphical interface element. In some examples, the user maymanipulate a trackball to highlight a single graphical interface elementas having focus. User-selection of a graphical interface element mayinvoke a pre-defined action by the mobile computing device. In someexamples, selectable graphical interface elements further oralternatively correspond to a button on the keyboard 504. User-selectionof the button may invoke the pre-defined action.

In some examples, the operating system provides a “desktop” graphicaluser interface that is displayed after turning on the mobile computingdevice 510, after activating the mobile computing device 510 from asleep state, after “unlocking” the mobile computing device 510, or afterreceiving user-selection of the “home” button 518 c. The desktopgraphical user interface may display several graphical interfaceelements that, when selected, invoke corresponding application programs.An invoked application program may present a graphical interface thatreplaces the desktop graphical user interface until the applicationprogram terminates or is hidden from view.

User-input may influence an executing sequence of mobile computingdevice 510 operations. For example, a single-action user input (e.g., asingle tap of the touchscreen, swipe across the touchscreen, contactwith a button, or combination of these occurring at a same time) mayinvoke an operation that changes a display of the user interface.Without the user-input, the user interface may not have changed at aparticular time. For example, a multi-touch user input with thetouchscreen 512 may invoke a mapping application to “zoom-in” on alocation, even though the mapping application may have by defaultzoomed-in after several seconds.

The desktop graphical interface can also display “widgets.” A widget isone or more graphical interface elements that are associated with anapplication program that is executing, and that display on the desktopcontent controlled by the executing application program. A widget'sapplication program may launch as the mobile device turns on. Further, awidget may not take focus of the full display. Instead, a widget mayonly “own” a small portion of the desktop, displaying content andreceiving touchscreen user-input within the portion of the desktop.

The mobile computing device 510 may include one or morelocation-identification mechanisms. A location-identification mechanismmay include a collection of hardware and software that provides theoperating system and application programs an estimate of the mobiledevice's geographical position. A location-identification mechanism mayemploy satellite-based positioning techniques, base station transmittingantenna identification, multiple base station triangulation, internetaccess point IP location determinations, inferential identification of auser's position based on search engine queries, and user-suppliedidentification of location (e.g., by receiving user a “check in” to alocation).

The mobile computing device 510 may include other applications,computing sub-systems, and hardware. A call handling unit may receive anindication of an incoming telephone call and provide a user thecapability to answer the incoming telephone call. A media player mayallow a user to listen to music or play movies that are stored in localmemory of the mobile computing device 510. The mobile device 510 mayinclude a digital camera sensor, and corresponding image and videocapture and editing software. An internet browser may enable the user toview content from a web page by typing in an addresses corresponding tothe web page or selecting a link to the web page.

The mobile computing device 510 may include an antenna to wirelesslycommunicate information with the base station 540. The base station 540may be one of many base stations in a collection of base stations (e.g.,a mobile telephone cellular network) that enables the mobile computingdevice 510 to maintain communication with a network 550 as the mobilecomputing device is geographically moved. The computing device 510 mayalternatively or additionally communicate with the network 550 through aWi-Fi router or a wired connection (e.g., ETHERNET, USB, or FIREWIRE).The computing device 510 may also wirelessly communicate with othercomputing devices using BLUETOOTH protocols, or may employ an ad-hocwireless network.

A service provider that operates the network of base stations mayconnect the mobile computing device 510 to the network 550 to enablecommunication between the mobile computing device 510 and othercomputing systems that provide services 560. Although the services 560may be provided over different networks (e.g., the service provider'sinternal network, the Public Switched Telephone Network, and theInternet), network 550 is illustrated as a single network. The serviceprovider may operate a server system 552 that routes information packetsand voice data between the mobile computing device 510 and computingsystems associated with the services 560.

The network 550 may connect the mobile computing device 510 to thePublic Switched Telephone Network (PSTN) 562 in order to establish voiceor fax communication between the mobile computing device 510 and anothercomputing device. For example, the service provider server system 552may receive an indication from the PSTN 562 of an incoming call for themobile computing device 510. Conversely, the mobile computing device 510may send a communication to the service provider server system 552initiating a telephone call using a telephone number that is associatedwith a device accessible through the PSTN 562.

The network 550 may connect the mobile computing device 510 with a Voiceover Internet Protocol (VoIP) service 564 that routes voicecommunications over an IP network, as opposed to the PSTN. For example,a user of the mobile computing device 510 may invoke a VoIP applicationand initiate a call using the program. The service provider serversystem 552 may forward voice data from the call to a VoIP service, whichmay route the call over the internet to a corresponding computingdevice, potentially using the PSTN for a final leg of the connection.

An application store 566 may provide a user of the mobile computingdevice 510 the ability to browse a list of remotely stored applicationprograms that the user may download over the network 550 and install onthe mobile computing device 510. The application store 566 may serve asa repository of applications developed by third-party applicationdevelopers. An application program that is installed on the mobilecomputing device 510 may be able to communicate over the network 550with server systems that are designated for the application program. Forexample, a VoIP application program may be downloaded from theApplication Store 566, enabling the user to communicate with the VoIPservice 564.

The mobile computing device 510 may access content on the internet 568through network 550. For example, a user of the mobile computing device510 may invoke a web browser application that requests data from remotecomputing devices that are accessible at designated universal resourcelocations. In various examples, some of the services 560 are accessibleover the internet.

The mobile computing device may communicate with a personal computer570. For example, the personal computer 570 may be the home computer fora user of the mobile computing device 510. Thus, the user may be able tostream media from his personal computer 570. The user may also view thefile structure of his personal computer 570, and transmit selecteddocuments between the computerized devices.

A voice recognition service 572 may receive voice communication datarecorded with the mobile computing device's microphone 522, andtranslate the voice communication into corresponding textual data. Insome examples, the translated text is provided to a search engine as aweb query, and responsive search engine search results are transmittedto the mobile computing device 510.

The mobile computing device 510 may communicate with a social network574. The social network may include numerous members, some of which haveagreed to be related as acquaintances. Application programs on themobile computing device 510 may access the social network 574 toretrieve information based on the acquaintances of the user of themobile computing device. For example, an “address book” applicationprogram may retrieve telephone numbers for the user's acquaintances. Invarious examples, content may be delivered to the mobile computingdevice 510 based on social network distances from the user to othermembers in a social network graph of members and connectingrelationships. For example, advertisement and news article content maybe selected for the user based on a level of interaction with suchcontent by members that are “close” to the user (e.g., members that are“friends” or “friends of friends”).

The mobile computing device 510 may access a personal set of contacts576 through network 550. Each contact may identify an individual andinclude information about that individual (e.g., a phone number, anemail address, and a birthday). Because the set of contacts is hostedremotely to the mobile computing device 510, the user may access andmaintain the contacts 576 across several devices as a common set ofcontacts.

The mobile computing device 510 may access cloud-based applicationprograms 578. Cloud-computing provides application programs (e.g., aword processor or an email program) that are hosted remotely from themobile computing device 510, and may be accessed by the device 510 usinga web browser or a dedicated program. Example cloud-based applicationprograms include GOOGLE DOCS word processor and spreadsheet service,GOOGLE GMAIL webmail service, and PICASA picture manager.

Mapping service 580 can provide the mobile computing device 510 withstreet maps, route planning information, and satellite images. Anexample mapping service is GOOGLE MAPS. The mapping service 580 may alsoreceive queries and return location-specific results. For example, themobile computing device 510 may send an estimated location of the mobilecomputing device and a user-entered query for “pizza places” to themapping service 580. The mapping service 580 may return a street mapwith “markers” superimposed on the map that identify geographicallocations of nearby “pizza places.”

Turn-by-turn service 582 may provide the mobile computing device 510with turn-by-turn directions to a user-supplied destination. Forexample, the turn-by-turn service 582 may stream to device 510 astreet-level view of an estimated location of the device, along withdata for providing audio commands and superimposing arrows that direct auser of the device 510 to the destination.

Various forms of streaming media 584 may be requested by the mobilecomputing device 510. For example, computing device 510 may request astream for a pre-recorded video file, a live television program, or alive radio program. Example services that provide streaming mediainclude YOUTUBE and PANDORA.

A micro-blogging service 586 may receive from the mobile computingdevice 510 a user-input post that does not identify recipients of thepost. The micro-blogging service 586 may disseminate the post to othermembers of the micro-blogging service 586 that agreed to subscribe tothe user.

A search engine 588 may receive user-entered textual or verbal queriesfrom the mobile computing device 510, determine a set ofinternet-accessible documents that are responsive to the query, andprovide to the device 510 information to display a list of searchresults for the responsive documents. In examples where a verbal queryis received, the voice recognition service 572 may translate thereceived audio into a textual query that is sent to the search engine.

These and other services may be implemented in a server system 590. Aserver system may be a combination of hardware and software thatprovides a service or a set of services. For example, a set ofphysically separate and networked computerized devices may operatetogether as a logical server system unit to handle the operationsnecessary to offer a service to hundreds of computing devices. A serversystem is also referred to herein as a computing system.

In various implementations, operations that are performed “in responseto” or “as a consequence of” another operation (e.g., a determination oran identification) are not performed if the prior operation isunsuccessful (e.g., if the determination was not performed). Operationsthat are performed “automatically” are operations that are performedwithout user intervention (e.g., intervening user input). Features inthis document that are described with conditional language may describeimplementations that are optional. In some examples, “transmitting” froma first device to a second device includes the first device placing datainto a network for receipt by the second device, but may not include thesecond device receiving the data. Conversely, “receiving” from a firstdevice may include receiving the data from a network, but may notinclude the first device transmitting the data.

“Determining” by a computing system can include the computing systemrequesting that another device perform the determination and supply theresults to the computing system. Moreover, “displaying” or “presenting”by a computing system can include the computing system sending data forcausing another device to display or present the referenced information.

FIG. 6 is a block diagram of computing devices 600, 650 that may be usedto implement the systems and methods described in this document, aseither a client or as a server or plurality of servers. Computing device600 is intended to represent various forms of digital computers, such aslaptops, desktops, workstations, personal digital assistants, servers,blade servers, mainframes, and other appropriate computers. Computingdevice 650 is intended to represent various forms of mobile devices,such as personal digital assistants, cellular telephones, smartphones,and other similar computing devices. The components shown here, theirconnections and relationships, and their functions, are meant to beexamples only, and are not meant to limit implementations describedand/or claimed in this document.

Computing device 600 includes a processor 602, memory 604, a storagedevice 606, a high-speed interface 608 connecting to memory 604 andhigh-speed expansion ports 610, and a low speed interface 612 connectingto low speed bus 614 and storage device 606. Each of the components 602,604, 606, 608, 610, and 612, are interconnected using various busses,and may be mounted on a common motherboard or in other manners asappropriate. The processor 602 can process instructions for executionwithin the computing device 600, including instructions stored in thememory 604 or on the storage device 606 to display graphical informationfor a GUI on an external input/output device, such as display 616coupled to high-speed interface 608. In other implementations, multipleprocessors and/or multiple buses may be used, as appropriate, along withmultiple memories and types of memory. Also, multiple computing devices600 may be connected, with each device providing portions of thenecessary operations (e.g., as a server bank, a group of blade servers,or a multi-processor system).

The memory 604 stores information within the computing device 600. Inone implementation, the memory 604 is a volatile memory unit or units.In another implementation, the memory 604 is a non-volatile memory unitor units. The memory 604 may also be another form of computer-readablemedium, such as a magnetic or optical disk.

The storage device 606 is capable of providing mass storage for thecomputing device 600. In one implementation, the storage device 606 maybe or contain a computer-readable medium, such as a floppy disk device,a hard disk device, an optical disk device, or a tape device, a flashmemory or other similar solid state memory device, or an array ofdevices, including devices in a storage area network or otherconfigurations. A computer program product can be tangibly embodied inan information carrier. The computer program product may also containinstructions that, when executed, perform one or more methods, such asthose described above. The information carrier is a computer- ormachine-readable medium, such as the memory 604, the storage device 606,or memory on processor 602.

The high-speed controller 608 manages bandwidth-intensive operations forthe computing device 600, while the low speed controller 612 manageslower bandwidth-intensive operations. Such allocation of functions is anexample only. In one implementation, the high-speed controller 608 iscoupled to memory 604, display 616 (e.g., through a graphics processoror accelerator), and to high-speed expansion ports 610, which may acceptvarious expansion cards (not shown). In the implementation, low-speedcontroller 612 is coupled to storage device 606 and low-speed expansionport 614. The low-speed expansion port, which may include variouscommunication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet)may be coupled to one or more input/output devices, such as a keyboard,a pointing device, a scanner, or a networking device such as a switch orrouter, e.g., through a network adapter.

The computing device 600 may be implemented in a number of differentforms, as shown in the figure. For example, it may be implemented as astandard server 620, or multiple times in a group of such servers. Itmay also be implemented as part of a rack server system 624. Inaddition, it may be implemented in a personal computer such as a laptopcomputer 622. Alternatively, components from computing device 600 may becombined with other components in a mobile device (not shown), such asdevice 650. Each of such devices may contain one or more of computingdevice 600, 650, and an entire system may be made up of multiplecomputing devices 600, 650 communicating with each other.

Computing device 650 includes a processor 652, memory 664, aninput/output device such as a display 654, a communication interface666, and a transceiver 668, among other components. The device 650 mayalso be provided with a storage device, such as a microdrive or otherdevice, to provide additional storage. Each of the components 650, 652,664, 654, 666, and 668, are interconnected using various buses, andseveral of the components may be mounted on a common motherboard or inother manners as appropriate.

The processor 652 can execute instructions within the computing device650, including instructions stored in the memory 664. The processor maybe implemented as a chipset of chips that include separate and multipleanalog and digital processors. Additionally, the processor may beimplemented using any of a number of architectures. For example, theprocessor may be a CISC (Complex Instruction Set Computers) processor, aRISC (Reduced Instruction Set Computer) processor, or a MISC (MinimalInstruction Set Computer) processor. The processor may provide, forexample, for coordination of the other components of the device 650,such as control of user interfaces, applications run by device 650, andwireless communication by device 650.

Processor 652 may communicate with a user through control interface 658and display interface 656 coupled to a display 654. The display 654 maybe, for example, a TFT (Thin-Film-Transistor Liquid Crystal Display)display or an OLED (Organic Light Emitting Diode) display, or otherappropriate display technology. The display interface 656 may compriseappropriate circuitry for driving the display 654 to present graphicaland other information to a user. The control interface 658 may receivecommands from a user and convert them for submission to the processor652. In addition, an external interface 662 may be provide incommunication with processor 652, so as to enable near areacommunication of device 650 with other devices. External interface 662may provided, for example, for wired communication in someimplementations, or for wireless communication in other implementations,and multiple interfaces may also be used.

The memory 664 stores information within the computing device 650. Thememory 664 can be implemented as one or more of a computer-readablemedium or media, a volatile memory unit or units, or a non-volatilememory unit or units. Expansion memory 674 may also be provided andconnected to device 650 through expansion interface 672, which mayinclude, for example, a SIMM (Single In Line Memory Module) cardinterface. Such expansion memory 674 may provide extra storage space fordevice 650, or may also store applications or other information fordevice 650. Specifically, expansion memory 674 may include instructionsto carry out or supplement the processes described above, and mayinclude secure information also. Thus, for example, expansion memory 674may be provide as a security module for device 650, and may beprogrammed with instructions that permit secure use of device 650. Inaddition, secure applications may be provided via the SIMM cards, alongwith additional information, such as placing identifying information onthe SIMM card in a non-hackable manner.

The memory may include, for example, flash memory and/or NVRAM memory,as discussed below. In one implementation, a computer program product istangibly embodied in an information carrier. The computer programproduct contains instructions that, when executed, perform one or moremethods, such as those described above. The information carrier is acomputer- or machine-readable medium, such as the memory 664, expansionmemory 674, or memory on processor 652 that may be received, forexample, over transceiver 668 or external interface 662.

Device 650 may communicate wirelessly through communication interface666, which may include digital signal processing circuitry wherenecessary. Communication interface 666 may provide for communicationsunder various modes or protocols, such as GSM voice calls, SMS, EMS, orMMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others.Such communication may occur, for example, through radio-frequencytransceiver 668. In addition, short-range communication may occur, suchas using a Bluetooth, WiFi, or other such transceiver (not shown). Inaddition, GPS (Global Positioning System) receiver module 670 mayprovide additional navigation- and location-related wireless data todevice 650, which may be used as appropriate by applications running ondevice 650.

Device 650 may also communicate audibly using audio codec 660, which mayreceive spoken information from a user and convert it to usable digitalinformation. Audio codec 660 may likewise generate audible sound for auser, such as through a speaker, e.g., in a handset of device 650. Suchsound may include sound from voice telephone calls, may include recordedsound (e.g., voice messages, music files, etc.) and may also includesound generated by applications operating on device 650.

The computing device 650 may be implemented in a number of differentforms, as shown in the figure. For example, it may be implemented as acellular telephone 680. It may also be implemented as part of asmartphone 682, personal digital assistant, or other similar mobiledevice.

Additionally computing device 600 or 650 can include Universal SerialBus (USB) flash drives. The USB flash drives may store operating systemsand other applications. The USB flash drives can include input/outputcomponents, such as a wireless transmitter or USB connector that may beinserted into a USB port of another computing device.

Various implementations of the systems and techniques described here canbe realized in digital electronic circuitry, integrated circuitry,specially designed ASICs (application specific integrated circuits),computer hardware, firmware, software, and/or combinations thereof.These various implementations can include implementation in one or morecomputer programs that are executable and/or interpretable on aprogrammable system including at least one programmable processor, whichmay be special or general purpose, coupled to receive data andinstructions from, and to transmit data and instructions to, a storagesystem, at least one input device, and at least one output device.

These computer programs (also known as programs, software, softwareapplications or code) include machine instructions for a programmableprocessor, and can be implemented in a high-level procedural and/orobject-oriented programming language, and/or in assembly/machinelanguage. As used herein, the terms “machine-readable medium”“computer-readable medium” refers to any computer program product,apparatus and/or device (e.g., magnetic discs, optical disks, memory,Programmable Logic Devices (PLDs)) used to provide machine instructionsand/or data to a programmable processor, including a machine-readablemedium that receives machine instructions as a machine-readable signal.The term “machine-readable signal” refers to any signal used to providemachine instructions and/or data to a programmable processor.

To provide for interaction with a user, the systems and techniquesdescribed here can be implemented on a computer having a display device(e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor)for displaying information to the user and a keyboard and a pointingdevice (e.g., a mouse or a trackball) by which the user can provideinput to the computer. Other kinds of devices can be used to provide forinteraction with a user as well; for example, feedback provided to theuser can be any form of sensory feedback (e.g., visual feedback,auditory feedback, or tactile feedback); and input from the user can bereceived in any form, including acoustic, speech, or tactile input.

The systems and techniques described here can be implemented in acomputing system that includes a back end component (e.g., as a dataserver), or that includes a middleware component (e.g., an applicationserver), or that includes a front end component (e.g., a client computerhaving a graphical user interface or a Web browser through which a usercan interact with an implementation of the systems and techniquesdescribed here), or any combination of such back end, middleware, orfront end components. The components of the system can be interconnectedby any form or medium of digital data communication (e.g., acommunication network). Examples of communication networks include alocal area network (“LAN”), a wide area network (“WAN”), peer-to-peernetworks (having ad-hoc or static members), grid computinginfrastructures, and the Internet.

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other.

Further to the descriptions above, a user may be provided with controlsallowing the user to make an election as to both if and when systems,programs or features described herein may enable collection of userinformation (e.g., information about a user's social network, socialactions or activities, profession, a user's preferences, or a user'scurrent location), and if the user is sent content or communicationsfrom a server. In addition, certain data may be treated in one or moreways before it is stored or used, so that personally identifiableinformation is removed. For example, a user's identity may be treated sothat no personally identifiable information can be determined for theuser, or a user's geographic location may be generalized where locationinformation is obtained (such as to a city, ZIP code, or state level),so that a particular location of a user cannot be determined. Thus, theuser may have control over what information is collected about the user,how that information is used, and what information is provided to theuser.

Although a few implementations have been described in detail above,other modifications are possible. Moreover, other mechanisms forperforming the systems and methods described in this document may beused. In addition, the logic flows depicted in the figures do notrequire the particular order shown, or sequential order, to achievedesirable results. Other steps may be provided, or steps may beeliminated, from the described flows, and other components may be addedto, or removed from, the described systems. Accordingly, otherimplementations are within the scope of the following claims.

What is claimed is:
 1. A computer-implemented method, comprising:applying, by a first transducer that is mechanically coupled to a firstportion of a display screen of a mobile computing device, a first forcethat causes a first movement of the first portion of the display screen;detecting, by a second transducer that is mechanically coupled to asecond portion of the display screen, movement of the second portion ofthe display screen, the second portion of the display screen beingdifferent than the first portion of the display screen; determining atransfer function that describes a transfer of movement from the firstportion of the display screen to the second portion of the displayscreen based on the first movement caused at the first portion of thedisplay screen by the first transducer and the movement detected at thesecond portion of the display screen by the second transducer;obtaining, from a storage of the mobile computing device, a referencetransfer function that describes a transfer of movement from a firstportion of a reference display screen to a second portion of thereference display screen; determining a difference between the transferfunction and the reference transfer function; and applying, by the firsttransducer, a second force that causes a second movement of the firstportion of the display screen, the second force being determined by acomputing system of the mobile computing device based on the differencebetween the transfer function and the reference transfer function. 2.The method of claim 1, wherein: the first transducer includes a firstpiezoelectric element that is mechanically coupled to the first portionof the display screen; and the second transducer includes a secondpiezoelectric element that is mechanically coupled to the second portionof the display screen.
 3. The method of claim 1, wherein applying, by afirst transducer that is mechanically coupled to a first portion of adisplay screen of a mobile computing device, a first force that causes afirst movement of the first portion of the display screen comprises:applying a first force that causes the display screen to vibrate at aparticular frequency and a particular amplitude.
 4. The method of claim1, wherein determining the transfer function that describes the transferof movement from the first portion of the display screen to the secondportion of the display screen comprises: determining a transfer functionthat describes an expected amplitude, frequency, and phase of movementat the second portion in response to a given amplitude, frequency, andphase of movement at the first portion.
 5. The method of claim 1,wherein applying, by the first transducer, a second force that causes asecond movement of the first portion of the display screen, the secondforce being determined by a computing system of the mobile computingdevice based on the difference between the transfer function and thereference transfer function comprises: determining a compensationfunction that compensates for the difference between the transferfunction and the reference transfer function; and applying the secondforce based at least on the compensation function.
 6. The method ofclaim 5, wherein applying the second force based at least on thecompensation function comprises: obtaining a movement signal; generatinga compensated movement signal from the movement signal in accordancewith the compensation function; and applying the second force inaccordance with the compensated movement signal.
 7. The method of claim5, comprising: obtaining the reference transfer function before applyingthe first force.
 8. The method of claim 1, comprising: determining toprovide a perceivable output to a user of the mobile computing devicethrough the first transducer, wherein applying the first force thatcauses a first movement of the first portion of the display screen is inresponse to determining to provide the perceivable output to the user ofthe mobile computing device through the first transducer.
 9. The methodof claim 1, wherein the reference display screen comprises the displayscreen before the first force was applied to the first portion of thedisplay screen.
 10. The method of claim 1, wherein the referencetransfer function is stored in the storage of the mobile computingdevice in response to testing that occurred before the first force wasapplied to the first portion of the display screen.
 11. A systemcomprising: one or more processors; a display screen; a first transducermechanically coupled to a first portion of the display screen; a secondtransducer mechanically coupled to a second portion of the displayscreen; and one or more storage devices storing instructions that areoperable, when executed by the one or more computers, to cause the oneor more processors perform operations comprising: applying, by the firsttransducer that is mechanically coupled to the first portion of thedisplay screen of a mobile computing device, a first force that causes afirst movement of the first portion of the display screen; detecting, bythe second transducer that is mechanically coupled to the second portionof the display screen, movement of the second portion of the displayscreen, the second portion of the display screen being different thanthe first portion of the display screen; determining a transfer functionthat describes a transfer of movement from the first portion of thedisplay screen to the second portion of the display screen based on thefirst movement caused at the first portion of the display screen by thefirst transducer and the movement detected at the second portion of thedisplay screen by the second transducer; obtaining, from a storage ofthe mobile computing device, a reference transfer function thatdescribes a transfer of movement from a first portion of a referencedisplay screen to a second portion of the reference display screen;determining a difference between the transfer function and the referencetransfer function; and applying, by the first transducer, a second forcethat causes a second movement of the first portion of the displayscreen, the second force being determined by a computing system of themobile computing device based on the difference between the transferfunction and the reference transfer function.
 12. The system of claim11, wherein: the first transducer includes a first piezoelectric elementthat is mechanically coupled to the first portion of the display screen;and the second transducer includes a second piezoelectric element thatis mechanically coupled to the second portion of the display screen. 13.The system of claim 11, wherein applying, by a first transducer that ismechanically coupled to a first portion of a display screen of a mobilecomputing device, a first force that causes a first movement of thefirst portion of the display screen comprises: applying a first forcethat causes the display screen to vibrate at a particular frequency anda particular amplitude.
 14. The system of claim 11, wherein determiningthe transfer function that describes the transfer of movement from thefirst portion of the display screen to the second portion of the displayscreen comprises: determining a transfer function that describes anexpected amplitude, frequency, and phase of movement at the secondportion in response to a given amplitude, frequency, and phase ofmovement at the first portion.
 15. The system of claim 11, whereinapplying, by the first transducer, a second force that causes a secondmovement of the first portion of the display screen, the second forcebeing determined by a computing system of the mobile computing devicebased on the difference between the transfer function and the referencetransfer function comprises: determining a compensation function thatcompensates for the difference between the transfer function and thereference transfer function; and applying the second force based atleast on the compensation function.
 16. The system of claim 15, whereinapplying the second force based at least on the compensation functioncomprises: obtaining a movement signal; generating a compensatedmovement signal from the movement signal in accordance with thecompensation function; and applying the second force in accordance withthe compensated movement signal.
 17. The system of claim 15, theoperations comprising: obtaining the reference transfer function beforeapplying the first force.
 18. The system of claim 11, the operationscomprising: determining to provide a perceivable output to a user of themobile computing device through the first transducer, wherein applyingthe first force that causes a first movement of the first portion of thedisplay screen is in response to determining to provide the perceivableoutput to the user of the mobile computing device through the firsttransducer.
 19. A non-transitory computer-readable medium storinginstructions executable by one or more computers which, upon suchexecution, cause the one or more computers to perform operationscomprising: applying, by a first transducer that is mechanically coupledto a first portion of a display screen of a mobile computing device, afirst force that causes a first movement of the first portion of thedisplay screen; detecting, by a second transducer that is mechanicallycoupled to a second portion of the display screen, movement of thesecond portion of the display screen, the second portion of the displayscreen being different than the first portion of the display screen;determining a transfer function that describes a transfer of movementfrom the first portion of the display screen to the second portion ofthe display screen based on the first movement caused at the firstportion of the display screen by the first transducer and the movementdetected at the second portion of the display screen by the secondtransducer; obtaining, from a storage of the mobile computing device, areference transfer function that describes a transfer of movement from afirst portion of a reference display screen to a second portion of thereference display screen; determining a difference between the transferfunction and the reference transfer function; and applying, by the firsttransducer, a second force that causes a second movement of the firstportion of the display screen, the second force being determined by acomputing system of the mobile computing device based on the differencebetween the transfer function and the reference transfer function.